1. Field of the Invention
The present invention relates to a print setting processing apparatus usable for print settings in an information processing apparatus such as a personal computer, and a relevant print setting processing method.
2. Description of the Related Art
Recently, various types of network devices are commonly used. For example, in a network environment including a plurality of printing apparatuses, a host PC can cause a printing apparatus having various functions to perform print processing. In such an environment, a user is required to install printer drivers corresponding to respective printing apparatuses on the host PC. When a document is printed by using an application installed on the host PC, the user needs to select an appropriate printer driver to cause the corresponding printing apparatus to perform print processing.
However, in the above-described environment, it may be difficult for the user to identify an optimum printing apparatus to be used and determine print settings (functions) to be set to obtain a desired print output.
For example, when a user instructs a staple or a bookbinding print, it may be difficult for the user to identify which printing apparatus has required functions. Even when the user can identify the printing apparatus having required functions, if the identified printing apparatus and its printer driver are not so frequently used by the user, the user may be unable to smoothly perform required print settings for the printer driver.
Print setting information can be stored when the application executes a print, so that the stored print setting information can be used for the next print execution. However, a user may be unable to accurately identify to which printer driver the stored print setting information corresponds.
Further, in a case where a printing apparatus to be used for the print execution is currently processing a great amount of print job or is malfunctioned, a user may use another printing apparatus. However, the user may be unable to identify an optimum printing apparatus as an alternate printing apparatus. Even when an appropriate alternate printing apparatus can be selected, print setting items of the alternate printing apparatus are usually different from those of the initially designated printing apparatus. The print settings of the initially designated printing apparatus cannot be directly reflected to the print settings of the alternate printing apparatus.
To solve these problems, a conventional application includes a print setting alternate function and a conventional printer driver (hereinafter, referred to as a “generic driver”) includes the print setting alternate function. The print setting alternate function, for example, includes providing a unique print setting screen by which a user can easily perform print settings instead of using a print setting screen of the printer driver, or performing print processing based on settings determined using an individual setting screen provided by utilizing a printer driver of an appropriate printing apparatus. Thus, the print setting alternate function enables a user to perform print settings adequately. Further, there is a print setting alternate function which can be applied to a plurality of printing apparatuses to rearrange differences among installed functions of respective printing apparatuses and present (notify) them to a user so that the users can select an optimum printing apparatus based on the supplied information.
There is a print setting alternating application which is applied only to a specific printing apparatus or specific print settings. For example, an application for performing layout processing on print data enables a user to edit only layout settings using an individual setting screen and changes the print settings of the printer driver to prevent the printing apparatus from performing the layout processing. Such an application can be regarded as an example of the print setting alternate function.
To realize the above-described print setting alternate function, the application needs to acquire functional information and setting information about the printing apparatus from the printer driver, edit print setting contents, and cause the printer driver to perform print processing based on the updated print settings.
As a technique capable of realizing the above-described print setting alternate function, an individual interface (I/F) 601 illustrated in FIG. 26 can be used to transmit and receive the functional information and the setting information between the application and the printer driver. For example, the Microsoft Windows® operating system (OS) provides a printing system referred to as Graphics Device Interface (GDI). In the GDI printing system, a memory block referred to as a DEVMODE structure can be used to transmit and receive print setting data between the application and the printer driver.
FIG. 24 illustrates a simplified configuration of the DEVMODE structure which includes two characteristic areas (i.e., a public portion 401 and a private portion 402). The public portion 401 is opened to the public. On the other hand, only the printer driver can access the private portion 402 which is not opened to the public. The DEVMODE structure public portion 401 describes only basic functions, such as a sheet size, sheet orientation, and resolution. The private portion 402 describes the rest of the functions.
FIG. 25 illustrates an example of the public portion 401. As illustrated in FIG. 25, the DEVMODE structure is strictly regulated by Microsoft Corporation using a header file of the C language. Whereas each vendor of the printer driver can individually define the private portion 402 which follows the public portion 401 and has an expansion size designated by dmDriverExtra.
In general, items that the application can acquire or change with respect to the settings of the printer driver are limited to the items regulated in the public portion 401. The application cannot directly access the private portion 402 that describes most of the functions of the printing apparatus. In the GDI printing system, the application can use a DeviceCapabilities application programming interface (API) to acquire the functional information about the printing apparatus, including information about sheet size supported by printing apparatus and information about two-sided printing capability. The application constructs a print screen based on the acquired information. However, acquisition of specific functional information by the DeviceCapabilities API is limited to the functions defined by the Windows system. Therefore, the DeviceCapabilities API cannot be used to acquire any other functional information not defined by the Windows system.
According to the system illustrated in FIG. 26 that includes the individual I/F 601, a print setting processing unit 205 of an application program 112 acquires the DEVMODE public portion 401 from a user interface processing unit 208 of a printer driver 114 via the DEVMODE. After completing editing processing, the print setting processing unit 205 returns the DEVMODE public portion 401 to the printer driver 114 via the DEVMODE.
With regard to the DEVMODE private portion 402, an individual I/F processing unit 602 of the application program 112 requests a driver software development kit (SDK) processing unit 603 of the printer driver 114 to acquire and edit item information relating to the DEVMODE private portion 402 via the individual I/F 601. Then, the driver SDK processing unit 603 edits the DEVMODE private portion 402 and sends the edited DEVMODE private portion 402 to the user interface processing unit 208. Similarly, the application can acquire the functional information, which cannot be acquired by the DeviceCapabilities API, from the printer driver via the individual I/F 601.
In this case, the application and the printer driver are required to mutually determine a specification of the individual I/F 601 beforehand. If the specification of the individual I/F 601 is not determined beforehand, transmission/reception of information between the application and the printer driver cannot be performed sufficiently.
A text-based file, such as Extensible Markup Language (XML), can be used to transmit/receive the functional information and the setting information between the application and the printer driver. In this case, the application can acquire and edit XML keys if the application can interpret them. Therefore, a number of processible items increases, compared to the DEVMODE-based technique which performs transmission/reception of the information using binary memory blocks.
The Microsoft Windows Vista® operating system newly provides an XML Paper Specification (XPS) based printing system in addition to the conventional GDI based printing system. For example, the new XPS-based printing system is introduced in the web site (e.g., http://www.microsoft.com/japan/whdc/device/print/default.ms px). The XPS, which is one of electronic document formats, is composed of the XML that stores information relating to a document structure, rendering information, and print settings and various elements (e.g., binary resources of bitmap and font data).
An XML file that stores the print settings of the printer driver is referred to as a print ticket. The print ticket can be characterized by “described using the XML and its specification is opened to the public,” “text and is therefore readable,” and “accessible by not only the printer driver but also the application”. Accordingly, the print ticket is functionally expanded compared to the DEVMODE.
FIG. 27 illustrates an example print ticket including a PrintTicket tag 701 in which a plurality of Feature tags 702 representing available functions is present. An Option tag 703 included in the Feature tag 702 indicates a present setting value of each function represented by the Feature.
In the XPS printing system, an XML-formatted structure “PrintCapabilities” is provided, so that the application can acquire functional information of a printing apparatus. FIG. 28 illustrates an example of the PrintCapabilities which is returned from the printer driver to the application. A PrintCapabilities tag 801 includes a plurality of Feature tags 802 each indicating a function. In the Feature tag 802, a plurality of Option tags 803 is present as candidates for a setting value of the function. The PrintCapabilities describes all functions supported by the printing apparatus and setting items of respective functions. The application can select a setting of each function based on the PrintCapabilities and can generate a print ticket including print settings.
As illustrated in FIG. 29, according to the technique using the text-based file (e.g., XML), the setting values of respective functions of the printer driver 114 can be transferred with a PrintTicket 901. Moreover, a PrintCapabilities 902 can be used to acquire functions of the printing apparatus and candidates of the setting values. The PrintTicket 901 and the PrintCapabilities 902 include texts describing Features each indicating the function and Options each indicating setting values and candidates. Therefore, the print setting processing unit 205 of the application program 112 can search for processible Features (functions) from the PrintTicket 901 and the PrintCapabilities 902 to acquire Options (setting values) and correct them. In this case, an XML analysis unit 903 of the print setting processing unit 205 performs analysis processing.
As discussed in Japanese Patent Application Laid-Open No. 11-143664 and Japanese Patent Application Laid-Open No. 2003-162388, using the above-described technique enables the application and the generic driver to acquire the functional information from the printer driver and perform functional settings or construct a print setting screen that a user can easily understand. When a plurality of printing apparatuses is usable, the print setting alternate function can be used to easily select a printing apparatus or easily perform settings of the functions.
However, only using the print setting alternate function is insufficient to effectively operate the plurality of printing apparatuses, even if selection of the printing apparatus and setting of its functions become easier.
More specifically, the print setting information that the print setting alternate function of the application can acquire from the printer driver and the print setting information that is set to the printer driver after completing editing processing are only applicable to the printer driver itself. Therefore, when print processing is performed by another printing apparatus, the print setting alternate function is again used to select an optimum printing apparatus. It is further required to perform print settings for another printer driver. For example, when the print setting alternate function selects a desired printing apparatus from the plurality of printing apparatuses, the print setting information is transmitted to a printer driver of the selected printing apparatus.
However, the selected printing apparatus may be unable to perform print processing as requested, if the printing apparatus has malfunctioned, is in a stalled state due to paper jam, or is currently performing a great amount of print job. In such cases, if the selected printing apparatus is replaced with another printing apparatus, the print setting alternate function is activated again to select another desired printing apparatus from the plurality of printing apparatuses. The print setting information is transmitted to a printer driver of the newly selected printing apparatus.
In a case where a printing apparatus stores print setting information specific thereto which is generated by the print setting alternate function of the application for a long-term reuse of the settings, the stored information cannot be reused if the printing apparatus is replaced with another printing apparatus. Therefore, print settings need to be performed again for the newly selected printing apparatus.
Moreover, when print data (e.g., XPS data) and print setting information are stored as a single document file, the document file can be directly transferred to the printing apparatus to perform direct print processing. In this case, even when the print setting alternate function is used to perform print settings suitable for a specific printing apparatus, a user may not select an appropriate printing apparatus in the direct print processing.